"use strict";
exports.__esModule = true;
// 最优方法，可以实现大多引用类型的深拷贝
// 基本实现常用类型的拷贝
var deepClone = function (target) {
    var result;
    if (typeof target === 'object') {
        if (Array.isArray(target)) {
            result = [];
            for (var i in target) {
                result.push(deepClone(target[i]));
            }
        }
        else if (target === null) {
            result = null;
        }
        else {
            result = {};
            for (var i in target) {
                result[i] = deepClone(target[i]);
            }
        }
    }
    else {
        result = target;
    }
    return result;
};
// #region
// let obj = {
//     a:1, b:2, c: {
//         d: 2
//     }
// }
// let obj2 = deepClone(obj)
// obj2.b = 3
// obj2.c.d = 5
// console.log(obj);
// console.log(obj2);
// let arr = [1, 2, 3, 4, [5,6]]
// arr2 = deepClone(arr)
// arr2[0] = 5
// arr2[4][0] = 7
// console.log(arr);
// console.log(arr2);
// let a = 3
// b = deepClone(a)
// b = 4
// console.log(a);
// console.log(b);
// let x = undefined
// let y = deepClone(x)
// y = 3
// console.log(x);
// console.log(y);
// let x = function() {}
// let y = deepClone(x)
// console.log(x);
// console.log(y);
// #endregion
var deepClone2 = function (target) {
    return JSON.parse(JSON.stringify(target));
};
